package com.ruoyi.supplier.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 商品记录业务对象
 *
 * @author ruoyi
 * @date 2023-09-18
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ProductBo extends BaseEntity {

    /**
     * 产品id
     */
    @NotNull(message = "产品id不能为空", groups = { EditGroup.class })
    private Integer productId;

    /**
     * 供货商id
     */
    @NotNull(message = "供货商id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer supplierId;

    /**
     * 品牌id
     */
    @NotNull(message = "品牌id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long brandId;

    /**
     * 产品名称
     */
    @NotBlank(message = "产品名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productName;

    /**
     * 产品一口价
     */
    @NotNull(message = "产品一口价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal productPrice;

    /**
     * 划线价
     */
    @NotNull(message = "划线价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal linePrice;

    /**
     * 多规格最高价
     */
    @NotNull(message = "多规格最高价不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal highPrice;

    /**
     * 产品编码
     */
    @NotBlank(message = "产品编码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String productNo;

    /**
     * 产品总库存
     */
    @NotNull(message = "产品总库存不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long productStock;

    /**
     * 商品卖点
     */
    @NotBlank(message = "商品卖点不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sellingPoint;

    /**
     * 产品分类id
     */
    @NotNull(message = "产品分类id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer categoryId;

    /**
     * 产品规格(10单规格 20多规格)
     */
    @NotNull(message = "产品规格(10单规格 20多规格)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer specType;

    /**
     * 库存计算方式(10下单减库存 20付款减库存)
     */
    @NotNull(message = "库存计算方式(10下单减库存 20付款减库存)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer deductStockType;

    /**
     * 产品详情
     */
    @NotBlank(message = "产品详情不能为空", groups = { AddGroup.class, EditGroup.class })
    private String content;

    /**
     * 产品排序(数字越小越靠前)
     */
    @NotNull(message = "产品排序(数字越小越靠前)不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer productSort;

    /**
     * 是否虚拟，0否1是
     */
    @NotNull(message = "是否虚拟，0否1是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isVirtual;

    /**
     * 详情是否纯图0否1是
     */
    @NotNull(message = "详情是否纯图0否1是不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer isPicture;

    /**
     * 商户id
     */
    @NotNull(message = "商户id不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer merchantId;


}
